home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume91 / utilitys / less_14z / part05 < prev    next >
Internet Message Format  |  1991-07-08  |  58KB

  1. Path: news.larc.nasa.gov!amiga-request
  2. From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v91i131: Less 1.4Z - text pager, Part05/07
  4. Reply-To: rayz@altair.csustan.edu (R. L. Zarling)
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga.v91i131@ab20.larc.nasa.gov>
  7. References: <comp.sources.amiga.v91i127@ab20.larc.nasa.gov>
  8. Date: 04 Jul 91 17:28:18 GMT
  9. Approved: tadguy@uunet.UU.NET (Tad Guy)
  10. X-Mail-Submissions-To: amiga@uunet.uu.net
  11. X-Post-Discussions-To: comp.sys.amiga.misc
  12.  
  13. Submitted-by: rayz@altair.csustan.edu (R. L. Zarling)
  14. Posting-number: Volume 91, Issue 131
  15. Archive-name: utilities/less-1.4z/part05
  16.  
  17. #!/bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 5 (of 7)."
  24. # Contents:  Less1.4Z/Less.doc.uu Less1.4Z/src/command.c
  25. # Wrapped by tadguy@ab20 on Thu Jul  4 13:28:16 1991
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'Less1.4Z/Less.doc.uu' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'Less1.4Z/Less.doc.uu'\"
  29. else
  30. echo shar: Extracting \"'Less1.4Z/Less.doc.uu'\" \(29005 characters\)
  31. sed "s/^X//" >'Less1.4Z/Less.doc.uu' <<'END_OF_FILE'
  32. Xbegin 666 Less.doc
  33. XM"@H*"@H*7PAL7PAE7PAS7PAS("T@7PAO7PAP7PAP7PAO7PAS7PAI7PAT7PAEG
  34. XM(%\(;U\(9B!?"&U?"&]?"')?"&4*"E9E<G-I;VX@,2XT6B!*=6YE(#$T+"`QM
  35. XM.3DQ"@I697)S:6]N<R!S:6YC92!!;6EG82!V97)S:6]N(#$N,UH@87)E('-U3
  36. XM<'!O<G1E9"!B>0H*4F%Y;6]N9"!,+B!:87)L:6YG+`I$97!A<G1M96YT(&]FW
  37. XM($-O;7!U=&5R(%-C:65N8V4*0V%L:68N(%-T871E(%5N:78N(%-T86YI<VQA0
  38. XM=7,*5'5R;&]C:RP@0T$@.34S.#`*"G)A>7I`8W-U<W1A;BY%1%4*"@I?"&Q?&
  39. XM"&5?"'-?"',@6RU?"&1?"'-?"'1?"'=?"&-?"$-?"&5?"$5?"&U?"$U?"'%?2
  40. XM"%%?"'5?"%5=(%LM7PAH7PA.72!;+6);9G!=7PA.72!;+7A?"$Y=(%LM6WI=-
  41. XM7PA.70H@("`@(%LM7PA06U\(;5\(35U?"'-?"'1?"')?"&E?"&Y?"&==(%LK_
  42. XM7PAC7PAM7PAD72`@6U\(9E\(:5\(;%\(95\(;E\(85\(;5\(95TN+BX*"E\(\
  43. XM3%\(95\(<U\(<R!I<R!A('!R;V=R86T@<VEM:6QA<B!T;R`@7PAM7PAO7PARX
  44. XM7PAE("`H,2DL("!B=70@('=H:6-H("!A;&QO=W,*8F%C:W=A<F1S("!M;W9E=
  45. XM;65N="!I;B!T:&4@9FEL92!A<R!W96QL(&%S(&9O<G=A<F0@;6]V96UE;G0N6
  46. XM"D%L<V\L(%\(;%\(95\(<U\(<R!D;V5S(&YO="!H879E("!T;R`@<F5A9"`@W
  47. XM=&AE("!E;G1I<F4@(&EN<'5T("!F:6QE"F)E9F]R92!S=&%R=&EN9RP@<V\@O
  48. XM=VET:"!L87)G92!I;G!U="!F:6QE<R!I="!S=&%R=',@=7`@9F%S+0IT97(@I
  49. XM=&AA;B!M;W-T('1E>'0@961I=&]R<RX*"B`@("`@0V]M;6%N9',@87)E(&)A<
  50. XM<V5D(&]N(%\(;5\(;U\(<E\(92P@(%\(=E\(:2!A;F0@7PAE7PAM7PAA7PACF
  51. XM7PAS+B`@($-O;6UA;F1S("!M87D*8F4@('!R96-E961E9"`@8GD@82!D96-ID
  52. XM;6%L(&YU;6)E<BP@8V%L;&5D($X@:6X@=&AE(&1E<V-R:7`M"G1I;VYS(&)EO
  53. XM;&]W+B`@5&AE(&YU;6)E<B!I<R!U<V5D(&)Y('-O;64@8V]M;6%N9',L(&%SX
  54. XM("!I;F1I+0IC871E9"X*"@I?"$E?"&X@7PAT7PAH7PAE(%\(9E\(;U\(;%\(`
  55. XM;%\(;U\(=U\(:5\(;E\(9R!?"&1?"&5?"'-?"&-?"')?"&E?"'!?"'1?"&E?X
  56. XM"&]?"&Y?"',L(%Y?"%@@7PAM7PAE7PAA7PAN7PAS(%\(8U\(;U\(;E\(=%\(=
  57. XM<E\(;U\(;"U?"%@N"@I((&]R($AE;'`@:V5Y"B`@("`@2&5L<#H@9&ES<&QAN
  58. XM>2!A('-U;6UA<GD@;V8@=&AE<V4@8V]M;6%N9',N("!)9B!Y;W4@9F]R+0H@@
  59. XM("`@(&=E="!A;&P@=&AE(&]T:&5R(&-O;6UA;F1S+"!R96UE;6)E<B!T:&ESA
  60. XM(&]N92X*"@I34$%#10H@("`@(%-C<F]L;"!F;W)W87)D($X@;&EN97,L(&1E&
  61. XM9F%U;'0@;VYE('=I;F1O=R`H<V5E("!O<'1I;VX*("`@("`M>B!B96QO=RDNU
  62. XM("!)9B!.(&ES(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4L(&]N;'D@=&AE"
  63. XM"B`@("`@9FEN86P@<V-R965N9G5L(&ES(&1I<W!L87EE9"X*"@IF(&]R(%Y&M
  64. XM"B`@("`@4V%M92!A<R!34$%#12X*"@I>5@H@("`@(%-A;64@87,@4U!!0T4N.
  65. XM"@H*8B!O<B!>0@H@("`@(%-C<F]L;"!B86-K=V%R9"!.(&QI;F5S+"!D969A^
  66. XM=6QT(&]N92!W:6YD;W<@*'-E92!O<'1I;VX*("`@("`M>B!B96QO=RDN("!)7
  67. XM9B!.(&ES(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4L(&]N;'D@=&AE"B`@#
  68. XM("`@9FEN86P@<V-R965N9G5L(&ES(&1I<W!L87EE9"X*"@I215154DX*("`@"
  69. XM("!38W)O;&P@9F]R=V%R9"!.(&QI;F5S+"!D969A=6QT(#$N("!4:&4@96YTE
  70. XM:7)E($X@;&EN97,*("`@("!A<F4@9&ES<&QA>65D+"!E=F5N(&EF($X@:7,@=
  71. XM;6]R92!T:&%N('1H92!S8W)E96X@<VEZ92X*"@IE(&]R(%Y%"B`@("`@4V%M:
  72. XM92!A<R!215154DXN"@I>3@H@("`@(%-A;64@87,@4D5455).+@H*"FH@;W(@"
  73. XM7DH*("`@("!!;'-O('1H92!S86UE(&%S(%)%5%523BX*"GD@;W(@7ED*("`@Y
  74. XM("!38W)O;&P@8F%C:W=A<F0@3B!L:6YE<RP@9&5F875L="`Q+B`@5&AE(&5N[
  75. XM=&ER92!.(&QI;F5S"B`@("`@87)E(&1I<W!L87EE9"P@979E;B!I9B!.(&ESQ
  76. XM(&UO<F4@=&AA;B!T:&4@<V-R965N('-I>F4N"@IK(&]R(%Y+"B`@("`@4V%M\
  77. XM92!A<R!Y+@H*7E`*("`@("!386UE(&%S('DN"@H*9"!O<B!>1`H@("`@(%-CR
  78. XM<F]L;"!F;W)W87)D($X@;&EN97,L(&1E9F%U;'0@:&%L9B!O9B!T:&4@<V-RA
  79. XM965N+B`@268*("`@("!.(&ES('-P96-I9FEE9"P@:70@8F5C;VUE<R!T:&4@]
  80. XM;F5W(&1E9F%U;'0@9F]R('-U8G-E<75E;G0*("`@("!D(&%N9"!U(&-O;6UA(
  81. XM;F1S+B`@5&AE(&AA;&8M<V-R965N(&1E9F%U;'0@:7,@<V5T(&%G86EN"B`@3
  82. XM("`@=VAE;F5V97(@=&AE('-C<F5E;B!I<R!R97-I>F5D+@H*"G4@;W(@7E4*V
  83. XM("`@("!38W)O;&P@8F%C:W=A<F0@3B!L:6YE<RP@9&5F875L="!H86QF(&]FX
  84. XM('1H92!S8W)E96XN("!)9@H@("`@($X@:7,@<W!E8VEF:65D+"!I="!B96-O`
  85. XM;65S('1H92!N97<@9&5F875L="!F;W(@<W5B<V5Q=65N=`H@("`@(&0@86YD,
  86. XM('4@8V]M;6%N9',N("!4:&4@:&%L9BUS8W)E96X@9&5F875L="!I<R!S970@+
  87. XM86=A:6X*("`@("!W:&5N979E<B!T:&4@<V-R965N(&ES(')E<VEZ960N"@H*M
  88. XM<B!O<B!>4B!O<B!>3`H@("`@(%)E<&%I;G0@=&AE('-C<F5E;BX*"@I2("`@*
  89. XM(%)E<&%I;G0@=&AE("!S8W)E96XL("!D:7-C87)D:6YG("!A;GD@(&)U9F9EH
  90. XM<F5D("!I;G!U="X*("`@("!5<V5F=6P@(&EF("!T:&4@(&9I;&4@(&ES("!CF
  91. XM:&%N9VEN9R`@=VAI;&4@(&ET(&ES(&)E:6YG"B`@("`@=FEE=V5D+@H*"F<@T
  92. XM("`@1V\@=&\@;&EN92!.(&EN("!T:&4@(&9I;&4L("!D969A=6QT("`Q("`H1
  93. XM8F5G:6YN:6YG("!O9@H@("`@(&9I;&4I+B`@*%=A<FYI;F<Z('1H:7,@;6%Y>
  94. XM(&)E('-L;W<@:68@3B!I<R!L87)G92XI"@H\("`@(%-A;64@87,@9RX*"@I'+
  95. XM("`@($=O('1O(&QI;F4@3B!I;B!T:&4@9FEL92P@9&5F875L="!T:&4@96YDP
  96. XM(&]F('1H92`@9FEL92X*("`@("`H5V%R;FEN9SH@('1H:7,@(&UA>2`@8F4@L
  97. XM<VQO=R!I9B!S=&%N9&%R9"!I;G!U="P@<F%T:&5R"B`@("`@=&AA;B!A(&9I,
  98. XM;&4L(&ES(&)E:6YG(')E860N*0H*/B`@("!386UE(&%S($<N"@H*<"`@("!'G
  99. XM;R!T;R!A('!O<VET:6]N($X@<&5R8V5N="!I;G1O('1H92!F:6QE+B`@3B!S1
  100. XM:&]U;&0@(&)E"B`@("`@8F5T=V5E;B`P(&%N9"`Q,#`N("`H5&AI<R!I<R!P%
  101. XM;W-S:6)L92!I9B!S=&%N9&%R9"!I;G!U=`H@("`@(&ES(&)E:6YG(')E860LT
  102. XM(&)U="!O;FQY(&EF(%\(;%\(95\(<U\(<R!H87,@86QR96%D>2!R96%D('1O,
  103. XM('1H90H@("`@(&5N9"`@;V8@('1H92`@9FEL92X@("!)="!I<R!A;'=A>7,@0
  104. XM9F%S="P@8G5T(&YO="!A;'=A>7,*("`@("!U<V5F=6PN*0H*"B4@("`@4V%M@
  105. XM92!A<R!P+@H*"FT@("`@1F]L;&]W960@8GD@86YY(&QO=V5R8V%S92`@;&5TK
  106. XM=&5R+"`@;6%R:W,@('1H92`@8W5R<F5N=`H@("`@('!O<VET:6]N('=I=&@@T
  107. XM=&AA="!L971T97(N"@H*)R`@("`H4VEN9VQE("!Q=6]T92XI("!&;VQL;W=E[
  108. XM9"`@8GD@(&%N>2`@;&]W97)C87-E("!L971T97(L"B`@("`@<F5T=7)N<R`@%
  109. XM=&\@('1H92`@<&]S:71I;VX@('=H:6-H('=A<R!P<F5V:6]U<VQY(&UA<FME)
  110. XM9`H@("`@('=I=&@@=&AA="!L971T97(N("!&;VQL;W=E9"!B>2`@86YO=&AEO
  111. XM<B`@<VEN9VQE("!Q=6]T92P*("`@("!R971U<FYS("!T;R!T:&4@<&]S=&EO-
  112. XM;B!A="!W:&EC:"!T:&4@;&%S="`B;&%R9V4B(&UO=F4M"B`@("`@;65N="!C?
  113. XM;VUM86YD('=A<R!E>&5C=71E9"X@($%L;"!M87)K<R!A<F4@;&]S="`@=VAEA
  114. XM;B`@80H@("`@(&YE=R!F:6QE(&ES(&5X86UI;F5D+@H*"B]P871T97)N"B`@M
  115. XM("`@4V5A<F-H(&9O<G=A<F0@:6X@=&AE(&9I;&4@9F]R('1H92!.+71H(&QI7
  116. XM;F4@8V]N=&%I;FEN9PH@("`@('1H92`@<&%T=&5R;BX@($X@9&5F875L=',@:
  117. XM=&\@,2X@(%1H92!P871T97)N(&ES(&$@<F5G=2T*("`@("!L87(@97AP<F5S^
  118. XM<VEO;BP@87,@<F5C;V=N:7IE9"!B>2!5;FEX(%\(95\(9"`H<V5E('1H90H@I
  119. XM("`@('-E8W1I;VX@;VX@<F5G=6QA<B!E>'!R97-S:6]N<R!B96QO=RDN("!4+
  120. XM:&4@<V5A<F-H('-T87)T<PH@("`@(&%T("!T:&4@('-E8V]N9"`@;&EN92!D,
  121. XM:7-P;&%Y960@*&)U="!S964@=&AE("UT(&]P=&EO;BP*("`@("!W:&EC:"!C2
  122. XM:&%N9V5S('1H:7,I+B`@268@=&AE('!A='1E<FX@:7,@;VUI='1E9"P@<V5AJ
  123. XM<F-H"B`@("`@9F]R(&%N;W1H97(@;V-C=7)A;F-E(&]F('1H92!M;W-T(')E"
  124. XM8V5N="!P871T97)N+@H*7E,@("!386UE(&%S("\N"@H*/W!A='1E<FX*("`@7
  125. XM("!396%R8V@@8F%C:W=A<F0@:6X@=&AE(&9I;&4@9F]R('1H92!.+71H(&QI!
  126. XM;F4@(&-O;G1A:6XM"B`@("`@:6YG('1H92!P871T97)N+B`@5&AE('-E87)C0
  127. XM:"!S=&%R=',@870@=&AE(&QI;F4@:6UM961I+0H@("`@(&%T96QY(&)E9F]R`
  128. XM92!T:&4@=&]P(&QI;F4@9&ES<&QA>65D+B`@268@=&AE('!A='1E<FX@:7,*"
  129. XM("`@("!O;6ET=&5D+"!S96%R8V@@9F]R(&%N;W1H97(@;V-C=7)A;F-E(&]F8
  130. XM('1H92!M;W-T(')E8V5N=`H@("`@('!A='1E<FXN"@H*;B`@("!297!E870@(
  131. XM<')E=FEO=7,@<V5A<F-H+"!F;W(@3BUT:"`@;&EN92`@8V]N=&%I;FEN9R`@O
  132. XM=&AE"B`@("`@;&%S="!P871T97)N+"!S96%R8VAI;F<@:6X@=&AE('-A;64@[
  133. XM9&ER96-T:6]N(&%S('1H90H@("`@('!R979I;W5S('-E87)C:"X*"@I%("`@$
  134. XM($5X86UI;F4@82!N97<@9FEL92X@($EF('1H92!F:6QE;F%M92`@:7,@(&UIC
  135. XM<W-I;F<L("!T:&4*("`@("`B8W5R<F5N="(@(&9I;&4@("AS964@('1H92!.V
  136. XM(&%N9"!0(&-O;6UA;F1S(&)E;&]W*2!F<F]M"B`@("`@=&AE(&QI<W0@;V8@'
  137. XM9FEL97,@:6X@=&AE(&-O;6UA;F0@;&EN92`@:7,@(')E+65X86UI;F5D+@H@U
  138. XM("`@($EF("!T:&4@(&9I;&5N86UE("!I<R`@82!P;W5N9"!S:6=N("@C*2P@E
  139. XM=&AE('!R979I;W5S;'D*("`@("!E>&%M:6YE9"!F:6QE(&ES(')E+65X86UIL
  140. XM;F5D("AO;F4@;&5V96P@;V8@8F%C:W5P(&]N;'DI+@H*"DX@("`@17AA;6EN+
  141. XM92!T:&4@;F5X="!F:6QE("AF<F]M('1H92!L:7-T(&]F(&9I;&5S(&=I=F5N_
  142. XM("!I;@H@("`@('1H92`@8V]M;6%N9"!L:6YE*2X@($EF(&$@;G5M8F5R($X@G
  143. XM:7,@<W!E8VEF:65D("AN;W0@=&\*("`@("!B92!C;VYF=7-E9"!W:71H('1H$
  144. XM92!C;VUM86YD($XI+"!T:&4@3BUT:"!N97AT(&9I;&4@(&ES"B`@("`@97AAB
  145. XM;6EN960N"@H*4"`@("!%>&%M:6YE('1H92!P<F5V:6]U<R!F:6QE+B`@268@K
  146. XM82!N=6UB97(@3B!I<R!S<&5C:69I960L"B`@("`@=&AE($XM=&@@<')E=FEO#
  147. XM=7,@9FEL92!I<R!E>&%M:6YE9"X*"@H](&]R(%Y'"B`@("`@4')I;G1S('-O*
  148. XM;64@:6YF;W)M871I;VX@86)O=70@=&AE("!F:6QE("!B96EN9R`@=FEE=V5D=
  149. XM+`H@("`@(&EN8VQU9&EN9R`@:71S("!N86UE("!A;F0@=&AE(&)Y=&4@;V9F'
  150. XM<V5T(&]F('1H92!B;W1T;VT*("`@("!L:6YE(&)E:6YG(&1I<W!L87EE9"X@[
  151. XM($EF('!O<W-I8FQE+"!I="!A;'-O('!R:6YT<R`@=&AE"B`@("`@;&5N9W1HU
  152. XM("!O9B`@=&AE("!F:6QE(&%N9"!T:&4@<&5R8V5N="!O9B!T:&4@9FEL92!A2
  153. XM8F]V90H@("`@('1H92!L87-T(&1I<W!L87EE9"!L:6YE+@H*"BT@("`@1F]LL
  154. XM;&]W960@8GD@;VYE(&]F('1H92!C;VUM86YD(&QI;F4@;W!T:6]N(&QE='1E,
  155. XM<G,@*'-E90H@("`@(&)E;&]W*2P@=&AI<R!W:6QL('1O9V=L92!T:&4@<V5TA
  156. XM=&EN9R!O9B!T:&%T(&]P=&EO;@H@("`@(&%N9"]O<B!P<FEN="!A(&UE<W-AE
  157. XM9V4@9&5S8W)I8FEN9R!T:&4@;F5W('-E='1I;F<N("!.;W0*("`@("!A;&P@1
  158. XM;W!T:6]N<R!C86X@8F4@<V5T(&9R;VT@=VET:&EN('1H92!P<F]G<F%M.B`@K
  159. XM8BP@4"P*("`@("!A;F0@=VEN9&]W('-I>FEN9R!A<F4@8V]M;6%N9"UL:6YE?
  160. XM(&]N;'D@;W!T:6]N<RX*"BMC;60@0V%U<V5S('1H92!S<&5C:69I960@8VUDT
  161. XM('1O(&)E(&5X96-U=&5D(&5A8V@@=&EM92!A(&YE=PH@("`@(&9I;&4@(&ESR
  162. XM(&5X86UI;F5D+B`@1F]R(&5X86UP;&4L("M'(&-A=7-E<R!?"&Q?"&5?"'-?F
  163. XM"',@=&\@:6YI+0H@("`@('1I86QL>2!D:7-P;&%Y(&5A8V@@9FEL92!S=&%RE
  164. XM=&EN9R`@870@('1H92`@96YD("!R871H97(*("`@("!T:&%N('1H92!B96=IR
  165. XM;FYI;F<N"@H*5B`@("!0<FEN=',@=&AE('9E<G-I;VX@;G5M8F5R(&]F(%\(H
  166. XM;%\(95\(<U\(<R!B96EN9R!R=6XN"@H*<2`@("!%>&ET<R!?"&Q?"&5?"'-?(
  167. XM"',N"@H*7PA#7PAO7PAM7PAM7PAA7PAN7PAD(%\(;%\(:5\(;E\(92!?"&]?0
  168. XM"'!?"'1?"&E?"&]?"&Y?"',@7PAA7PAR7PAE(%\(9%\(95\(<U\(8U\(<E\(0
  169. XM:5\(8E\(95\(9"!?"&)?"&5?"&Q?"&]?"'<N("!?"$U?"&]?"'-?"'0@7PAOH
  170. XM7PAP7PAT7PAI7PAO7PAN7PAS("!?"&U?"&%?"'D*7PAB7PAE(%\(8U\(:%\("
  171. XM85\(;E\(9U\(95\(9"!?"'=?"&A?"&E?"&Q?"&4@7PAL7PAE7PAS7PAS(&ES&
  172. XM(')U;FYI;F<L('9I82!T:&4@(BTB(&-O;6UA;F0N"@H@("`@($]P=&EO;G,@,
  173. XM87)E(&%L<V\@=&%K96X@9G)O;2`@=&AE("!E;G9I<F]N;65N="`@=F%R:6%BY
  174. XM;&4*(DQ%4U,B+B`@($9O<B`@97AA;7!L92P@:68@>6]U(&QI:V4@=F5R>2!V0
  175. XM97)B;W-E('!R;VUP=&EN9RP@=&\*879O:60@='EP:6YG(")L97-S("U-("XN6
  176. XM+B(@96%C:"!T:6UE(%\(;%\(95\(<U\(<R`@:7,@(&EN=F]K960L("!Y;W4*B
  177. XM;6EG:'0@=&5L;"!?"&-?"'-?"&@@;W(@=&AE($%M:6=A1$]3('-H96QL.@H**
  178. XM<V5T96YV($Q%4U,@30H*;W(@:68@>6]U('5S92!?"%-?"$M?"'-?"&@Z"@I,V
  179. XM15-3/4T[(&5X<&]R="!,15-3"@I4:&4@96YV:7)O;FUE;G0@=F%R:6%B;&4@9
  180. XM:7,@<&%R<V5D(&)E9F]R92!T:&4@8V]M;6%N9"`@;&EN92P*<V\@(&-O;6UA[
  181. XM;F0@;&EN92!O<'1I;VYS(&]V97)R:61E('1H92!,15-3(&5N=FER;VYM96YT3
  182. XM('9A<FDM"F%B;&4N("!!(&1O;&QA<B!S:6=N("@D*2!M87D@8F4@=7-E9"!T#
  183. XM;R!S:6=N86P@=&AE(&5N9"!O9B!A;@IO<'1I;VX@('-T<FEN9RX@("!4:&ES)
  184. XM(&ES(&EM<&]R=&%N="!O;FQY(&9O<B!O<'1I;VYS(&QI:V4@+5`*=VAI8V@@.
  185. XM=&%K92!A(&9O;&QO=VEN9R!S=')I;F<N"@I3;VUE(&]P=&EO;G,@:&%V92!VJ
  186. XM86QU97,L('-O;64@87)E(#(M=V%Y('1O9V=L97,L(&%N9"!S;VUE(&%R90HS_
  187. XM+7=A>2!T;V=G;&5S+B`@5&AE(#,M=V%Y(&]N97,@87)E(&AA;F1L960@8GD@K
  188. XM=7-I;F<@8F]T:"!A;@IU<'!E<BUC87-E(&%N9"!A(&QO=V5R+6-A<V4@;W!TZ
  189. XM:6]N(&YA;64N("!5<W5A;&QY+"!T:&4@=7!P97(M"F-A<V4@;W!T:6]N(&ES%
  190. XM('1H92!M;W-T(&5X=')E;64L('1H92!L;W=E<BUC87-E('-E='1I;F<@:7,*A
  191. XM;6]D97)A=&4L(&%N9"!N96ET:&5R(&ES(&QE87-T(&5X=')E;64N("!&;W(@C
  192. XM:6YS=&%N8V4L('1H90HM;2!A;F0@+4T@;W!T:6]N<R!C;VYT<F]L('1H92!LM
  193. XM96YG=&@@;V8@=&AE('!R;VUP="!L:6YE+B`@268*+4T@:7,@:6X@969F96-T7
  194. XM+"!Y;W4@9V5T(&$@<F5L871I=F5L>2!L;VYG('!R;VUP="P@=VAI;&4@+6T*F
  195. XM:7,@;75C:"!S:&]R=&5R+B`@268@;F5I=&AE<B`M;2!N;W(@+4T@:7,@<V5TG
  196. XM+"!T:&4@<')O;7!T(&ES"F$@<VEN9VQE("(Z(B!C:&%R86-T97(@*'5N;&5SR
  197. XM<R!Y;W4@<F5D969I;F4@;VYE(&]R(&UO<F4@;V8*=&AE<V4@=7-I;F<@+5`IL
  198. XM+B`@5&\@8VAA;F=E(&$@,RUW87D@;W!T:6]N+"!U<V4@96ET:&5R("UX(&]R"
  199. XM"BU8+"!W:&5R92!X(&ES('1H92!O<'1I;VX@;F%M92X@(%1Y<&EN9R`M>"!WJ
  200. XM:6QL(&5S=&%B;&ES:"!T:&4*;6]D97)A=&4@8V%S92!I9B!I="!W87-N)W0@8
  201. XM86QR96%D>2!S970@*&DN92X@96ET:&5R("U8(&]R"FYE:71H97(@=V%S(&ENB
  202. XM(&5F9F5C="D@;W(@<V5T('1H92!L96%S="!E>'1R96UE("@B;F5I=&AE<B(I[
  203. XM"F-H;VEC92!I9B!I="!W87,N("!3:6UI;&%R;'DL("U8('=O=6QD(&5S=&%B[
  204. XM;&ES:"!T:&4@6"!O<'1I;VX*:68@:70@=V%S;B=T(&%L<F5A9'D@:6X@969F6
  205. XM96-T.R!O=&AE<G=I<V4@(FYE:71H97(B+@H*+6(@("!.=6UE<FEC.R!S970@/
  206. XM9G)O;2!C;VUM86YD(&QI;F4@;W(@96YV:7)O;FUE;G0@;VYL>2X*("`@("!4?
  207. XM:&4@+6)?"&X@;W!T:6]N('1E;&QS(%\(;%\(95\(<U\(<R!T;R!U<V4@82!N`
  208. XM;VXM<W1A;F1A<F0@(&)U9F9E<@H@("`@('-I>F4N("`@5&AE<F4@(&%R92!T,
  209. XM=V\@<W1A;F1A<F0@*&1E9F%U;'0I(&)U9F9E<B!S:7IE<RP*("`@("!O;F4@-
  210. XM:7,@=7-E9"!W:&5N(&$@9FEL92!I<R!B96EN9R`@<F5A9"`@86YD("!T:&4@1
  211. XM(&]T:&5R"B`@("`@=VAE;B`@82`@<&EP92`@*'-T86YD87)D("!I;G!U="D@?
  212. XM(&ES("!B96EN9R`@<F5A9"X@(%1H90H@("`@(&-U<G)E;G0@9&5F875L=',@Q
  213. XM87)E(#4@8G5F9F5R<R!F;W(@(&9I;&5S("!A;F0@(#$R("!F;W(*("`@("!P+
  214. XM:7!E<RX@("`H0G5F9F5R<R`@87)E(#$P,C0@8GET97,N*2!4:&4@;G5M8F5R;
  215. XM(%\(;B!S<&5C:2T*("`@("!F:65S(&$@9&EF9F5R96YT(&YU;6)E<B!O9B!B?
  216. XM=69F97)S('1O('5S92X@(%1H92`M8B`@;6%Y"B`@("`@8F4@9F]L;&]W960@-
  217. XM8GD@(F8B+"!I;B!W:&EC:"!C87-E(&]N;'D@=&AE(&9I;&4@9&5F875L=`H@I
  218. XM("`@(&ES(&-H86YG960L(&]R(&)Y(")P(B`@:6X@('=H:6-H("!C87-E("!OW
  219. XM;FQY("!T:&4@('!I<&4*("`@("!D969A=6QT(&ES(&-H86YG960N("!/=&AEU
  220. XM<G=I<V4L(&)O=&@@87)E(&-H86YG960N("!4:&ES"B`@("`@;W!T:6]N(&-A2
  221. XM;FYO="!B92!R97-E="!U<VEN9R!T:&4@)RTG(&-O;6UA;F0@9G)O;2!W:71H:
  222. XM:6X*("`@("!,97-S+@H@("`@(%1H97-E(&1E9F%U;'0@<V5T=&EN9W,@87)E7
  223. XM('!R971T>2!M:6YI;6%L+"!D97-I9VYE9"!F;W(*("`@("!S:71U871I;VYS"
  224. XM('=H97)E(&UE;6]R>2!I<R!R96%L;'D@870@82!P<F5M:75M+B`@*$$@9G5LL
  225. XM;`H@("`@('!A9V4@;V8@=&5X="!O;B!A(&AI9V@M<F5S('-C<F5E;B!C86X@4
  226. XM8F4@;F5A<FQY(#1K+BD@($EF"B`@("`@>6]U(&AA=F4@96YO=6=H(&UE;6]RH
  227. XM>2P@>6]U(&UA>2!W86YT('1O('5S92!A;B!E;G9I<F]N;65N=`H@("`@('9A8
  228. XM<FEA8FQE('1O(')E=FES92!T:&5M('5P=V%R9#L@($D@=7-E("UB9C$U8G`Q0
  229. XM,#`N"@HM8R!A;F0@+4,@(#,M=V%Y('-W:71C:`H@("`@($EF('1H92`M8R!OQ
  230. XM<'1I;VX@:7,@<V5T+"!W:&5N(%\(;%\(95\(<U\(<R!N965D<R!T;R!C:&%NO
  231. XM9V4@=&AE"B`@("`@96YT:7)E("!D:7-P;&%Y+"`@:70@=VEL;"!P86EN="!FW
  232. XM<F]M('1H92!T;W`@;&EN92!D;W=N+@H@("`@($]T:&5R=VES92P@:70@=VELI
  233. XM;"!R97!A:6YT("!T:&4@('-C<F5E;B`@8GD@('-C<F]L;&EN9PH@("`@(&9RJ
  234. XM;VT@('1H92`@8F]T=&]M("!O9B`@=&AE('-C<F5E;BX*("`@("!4:&4@+4,@1
  235. XM;W!T:6]N(&ES(&QI:V4@+6,L(&)U="`@=&AE("!S8W)E96X@(&ES("!C;&5A3
  236. XM<F5D"B`@("`@8F5F;W)E(&ET(&ES(')E<&%I;G1E9"X@(%1H:7,@:7,@=&AE0
  237. XM(&9A<W1E<W0@;W!T:6]N+"!A;F0*("`@("!I<R!T:&4@9&5F875L="!U<&]N@
  238. XM('!R;V=R86T@<W1A<G1U<"X*("`@("!4:&4@+6,@;W(@+4,@;W!T:6]N(&UAL
  239. XM>2!B92!O=F5R<FED9&5N(&9O<B!B86-K=V%R9"!F:6QE"B`@("`@;6]T:6]NX
  240. XM(&)Y(&$@<W5F9FEC:65N=&QY(&QA<F=E('-E='1I;F<@;V8@+6@N("!)9B`M.
  241. XM:"!I<PH@("`@('-E="!L87)G97(@=&AA;B!T:&4@<V-R965N('-I>F4L(&9U%
  242. XM;&P@<&%G92!B86-K=V%R9',*("`@("!M;W9E;65N=',@=VEL;"!S8W)O;&P@6
  243. XM<F5G87)D;&5S<R!O9B!T:&4@+4,@<V5T=&EN9RX*"BUE(&%N9"`M12`@,RUW`
  244. XM87D@<W=I=&-H"B`@("`@56YD97(@+64L('1H92!O;FQY('=A>2!T;R!E>&ETC
  245. XM(&QE<W,@:7,@=FEA('1H92`B<2(@(&-O;2T*("`@("!M86YD+"!O<B!T:&4@-
  246. XM<V-R965N(&-L;W-E(&=A9&=E="X@(%=I=&AO=70@=&AE("UE(&]P=&EO;BP*F
  247. XM("`@("!L97-S(&%U=&]M871I8V%L;'D@97AI=',@:68@>6]U('5S92!A('!A(
  248. XM9V4@9F]R=V%R9"!C;VTM"B`@("`@;6%N9"!W:&5N('EO=2!H879E(&%L<F5AO
  249. XM9'D@<F5A8VAE9"!E;F0M;V8M9FEL92`H9&5F875L="DN"B`@("`@5&AE("U%0
  250. XM(&9L86<@8V%U<V5S(&QE<W,@('1O("!E>&ET(&EF('EO=2!U<V4@86YY(&]F(
  251. XM('1H90H@("`@('5S=6%L(&-O;6UA;F1S("AN;W0@:G5S="!P86=E(&9O<G=AB
  252. XM<F0I(&%F=&5R('EO=2!H879E"B`@("`@<F5A8VAE9"!E;F0M;V8M9FEL92X*&
  253. XM("`@("!296=A<F1L97-S(&]F('1H92!S971T:6YG(&]F('1H:7,@<W=I=&-H?
  254. XM+"!,97-S('=I;&P@<75I=`H@("`@(&EM;65D:6%T96QY('5P;VX@<F5C96EP6
  255. XM="!O9B!A($)214%+('-I9VYA;"X@($)214%+(&UA>0H@("`@(&)E(&=E;F5RI
  256. XM871E9"!B>2!T:&4@06UI9V%$3U,@(F)R96%K(B!C;VUM86YD(&1I<F5C=&5DK
  257. XM(&%T"B`@("`@=&AE($QE<W,@<')O8V5S<RP@;W(@8GD@82!>0R!I;B!T:&4@8
  258. XM:6YV;VMI;F<@0TQ)('=I;F1O=PH@("`@("AI9B!T:&5R92!I<R!O;F4I+B`@C
  259. XM02!>0R!I;B!T:&4@3&5S<R!W:6YD;W<@:7,@:6=N;W)E9"P*("`@("!W:71H?
  260. XM(&$@=V%R;FEN9R!M97-S86=E+@H*+6@@("!.=6UE<FEC"B`@("`@5&AE("UHF
  261. XM(&]P=&EO;B!I;G1E<F%C=',@=VET:"`M8R!T;R!S<&5C:69Y('5N9&5R('=H%
  262. XM870*("`@("!C;VYD:71I;VYS(&)A8VMW87)D<R!S8W)O;&QI;F<@=VEL;"!B2
  263. XM92!U<V5D('1O('5P9&%T92!A"B`@("`@9&ES<&QA>2X@(%1H92`M:"!S971TA
  264. XM:6YG(&ES('1H92!M87AI;75M(&YU;6)E<B!O9B!L:6YE<PH@("`@('1O('-C5
  265. XM<F]L;"`@8F%C:W=A<F1S+B`@268@(&ET("!I<R!N96-E<W-A<GD@('1O(&UO-
  266. XM=F4*("`@("!B86-K=V%R9',@;6]R92!T:&%N('1H:7,@;6%N>2!L:6YE<RP@)
  267. XM;W(@;6]R92!T:&%N(&]N90H@("`@('-C<F5E;F9U;"P@=&AE('-C<F5E;B!I(
  268. XM<R!R97!A:6YT960@:6X@82!F;W)W87)D("!D:7)E8W1I;VXN"B`@("`@0F%C[
  269. XM:W=A<F1S(&UO=F5M96YT<R!O9B!E>&%C=&QY(&]N92!S8W)E96YF=6P@87)EZ
  270. XM(&AA;F1L960*("`@("!A8V-O<F1I;F<@=&\@=&AE("UC('-E='1I;F<L(&EF1
  271. XM('1H92!U<V5R(&QE879E<R`M:"!U;G-E="X*("`@("!)9B`M:"!I<R!L969TG
  272. XM('5N<W!E8VEF:65D(&)Y('1H92!U<V5R+"!I="!D969A=6QT<R!T;R!O;F4*Z
  273. XM("`@("!L97-S('1H86X@=&AE('-C<F5E;B!S:7IE+B`@3VYC92!T:&4@=7-E_
  274. XM<B!S<&5C:69I97,@80H@("`@('9A;'5E+"!H;W=E=F5R+"!T:&%T('9A;'5E;
  275. XM(&ES(')E=&%I;F5D(&9O<B!T:&4@8F%L86YC92!O9@H@("`@('1H92!R=6XN9
  276. XM("!5<V4@+6@P('1O(&1I<V%B;&4@86QL(&)A8VMW87)D<R!S8W)O;&QI;F<N/
  277. XM"@HM;2!A;F0@+4T@(#,M=V%Y('-W:71C:`H@("`@($)Y(&1E9F%U;'0L(%\(;
  278. XM;%\(95\(<U\(<R!P<F]M<'1S('9E<F)O<V5L>2`H+6TI+"!W:71H('1H90H@Z
  279. XM("`@('!E<F-E;G0@:6YT;R!T:&4@9FEL92X@5&AE("U-(&]P=&EO;B!C875SZ
  280. XM97,@7PAL7PAE7PAS7PAS('1O"B`@("`@<')O;7!T(&5V96X@;6]R92!V97)B*
  281. XM;W-E;'D@=&AA;B`M;2X@($EF(&YE:71H97(@+6T@;F]R"B`@("`@+4T@:7,@&
  282. XM<V5T+"!T:&4@<')O;7!T(&ES('9E<GD@<VAO<G0N("!.;W1E('1H870@3&5SF
  283. XM<PH@("`@(&%U=&]M871I8V%L;'D@<VAO<G1E;G,@86YY('!R;VUP="!I9B!T9
  284. XM:&4@<V-R965N(&ES(&YO=`H@("`@('=I9&4@96YO=6=H+@H*+5`@("!3=')I4
  285. XM;F<[(&-O;6UA;F0@;&EN92!O<B!E;G9I<F]N;65N="!O;FQY"B`@("`@5&AE:
  286. XM("U0(&]P=&EO;B!P<F]V:61E<R!A('=A>2!T;R!T86EL;W(@=&AE('1H<F5E;
  287. XM('!R;VUP=`H@("`@('-T>6QE<R`@=&\@>6]U<B!O=VX@<')E9F5R96YC92X@C
  288. XM(%EO=2!W;W5L9"!N;W)M86QL>2!P=70*("`@("!T:&ES(&]P=&EO;B!I;B!Y:
  289. XM;W5R($Q%4U,@96YV:7)O;FUE;G0@('9A<FEA8FQE+"`@<F%T:&5R"B`@("`@D
  290. XM=&AA;B!T>7!E(&ET(&EN('=I=&@@96%C:"!L97-S(&-O;6UA;F0N("!3=6-HE
  291. XM(&%N(&]P=&EO;@H@("`@(&UU<W0@96ET:&5R(&)E('1H92!L87-T(&]P=&EOC
  292. XM;B!I;B!T:&4@3$534R!V87)I86)L92P@;W(*("`@("!B92`@=&5R;6EN871EJ
  293. XM9"`@8GD@(&$@(&1O;&QA<B`@<VEG;BX@("`M4"!F;VQL;W=E9"!B>2!A"B`@<
  294. XM("`@<W1R:6YG(&-H86YG97,@('1H92`@9&5F875L="`@*'-H;W)T*2`@<')OH
  295. XM;7!T("!T;R`@=&AA=`H@("`@('-T<FEN9RX@("`M4&T@(&-H86YG97,@('1H3
  296. XM92`@;65D:75M("`H+6TI('!R;VUP="!T;R!T:&4*("`@("!S=')I;F<L(&%N3
  297. XM9"`M4$T@8VAA;F=E<R`@=&AE("!L;VYG("`H+4TI("!P<F]M<'0N("`@5&AE4
  298. XM"B`@("`@<W1R:6YG("!C;VYS:7-T<R`@;V8@(&$@('-E<75E;F-E("!O9B!LG
  299. XM971T97)S('=H:6-H(&%R90H@("`@(')E<&QA8V5D('=I=&@@8V5R=&%I;B!P^
  300. XM<F5D969I;F5D('-T<FEN9W,L(&%S(&9O;&QO=W,Z"B`@("`@("`@("!&9FEL;
  301. XM92!N86UE"B`@("`@("`@("!F9FEL92!N86UE+"!O;FQY(&]N8V4*("`@("`@4
  302. XM("`@($]F:6QE(&X@;V8@;@H@("`@("`@("`@;V9I;&4@;B!O9B!N+"!O;FQYX
  303. XM(&]N8V4*("`@("`@("`@(&)B>71E(&]F9G-E=`H@("`@("`@("`@<'!E<F-E5
  304. XM;G0@:6YT;R!F:6QE"B`@("`@("`@("!0<&5R8V5N="!I9B!K;F]W;BP@96QS3
  305. XM92!B>71E(&]F9G-E=`H@("`@($%N9VQE(&)R86-K971S+"`\(&%N9"`^+"!M2
  306. XM87D@(&)E("!U<V5D("!T;R`@<W5R<F]U;F0@(&$*("`@("!L:71E<F%L("!SB
  307. XM=')I;F<@('1O("!B92`@:6YC;'5D960@(&EN("!T:&4@<')O;7!T+B`@5&AE_
  308. XM"B`@("`@9&5F875L=',@87)E(")F;R(@9F]R('1H92!S:&]R="!P<F]M<'0L9
  309. XM(")F;U`B("!F;W(@('1H90H@("`@(&UE9&EU;2!P<F]M<'0L(&%N9"`B1F]B6
  310. XM<"(@9F]R('1H92!L;VYG('!R;VUP="X*("`@("!%>&%M<&QE.B!3971T:6YG(
  311. XM('EO=7(@3$534R!V87)I86)L92`@=&\@(")0;49/4"10349/8G`B"B`@("`@'
  312. XM=V]U;&0@(&-H86YG92`@=&AE("!M961I=6T@(&%N9"`@;&]N9R!P<F]M<'1SK
  313. XM('1O(&%L=V%Y<PH@("`@(&EN8VQU9&4@=&AE(&9I;&4@;F%M92!A;F0@(F9I(
  314. XM;&4@;B!O9B!N(B!M97-S86=E+@H@("`@($%N;W1H97(@97AA;7!L93H@4V5T$
  315. XM=&EN9R!Y;W5R($Q%4U,@=F%R:6%B;&4@=&\*("`@("`B;5!M/"TM3&5S<RTM>
  316. XM/D9O4&4B('=O=6QD(&-H86YG92!T:&4@;65D:75M("!P<F]M<'0@('1O"B`@L
  317. XM("`@=&AE("!S=')I;F<@("(M+4QE<W,M+2(@(&9O;&QO=V5D("!B>2!T:&4@_
  318. XM9FEL92!N86UE(&%N9`H@("`@('!E<F-E;G0@:6YT;R!T:&4@9FEL92X@("!)A
  319. XM="`@86QS;R`@<V5L96-T<R`@=&AE("!M961I=6T*("`@("!P<F]M<'0@(&%SX
  320. XM("!T:&4@(&1E9F%U;'0@('!R;VUP="`@*&)E8V%U<V4@;V8@=&AE(&9I<G-TF
  321. XM"B`@("`@(FTB*2X*"BUQ(&%N9"`M42`@,RUW87D@<W=I=&-H"B`@("`@3F]R1
  322. XM;6%L;'DL(&EF(&%N(&%T=&5M<'0@:7,@;6%D92!T;R!S8W)O;&P@<&%S="!T9
  323. XM:&4@(&5N9`H@("`@(&]F("!T:&4@(&9I;&4@(&]R(&)E9F]R92!T:&4@8F5G'
  324. XM:6YN:6YG(&]F('1H92!F:6QE+"!T:&4*("`@("!S8W)E96X@9FQA<VAE<R`H>
  325. XM(G9I<W5A;"!B96QL(BD@=&\@:6YD:6-A=&4@=&AI<R`@9F%C="X*("`@("!4&
  326. XM:&4@("UQ(&]P=&EO;B`@=&5L;',@(%\(;%\(95\(<U\(<R!N;W0@=&\@9FQAB
  327. XM<V@@=&AE('-C<F5E;B!A=`H@("`@('-U8V@@=&EM97,N"B`@("`@179E;B!I?
  328. XM9B`M<2!I<R!G:79E;BP@7PAL7PAE7PAS7PAS('=I;&P@9FQA<V@@=&AE('-C5
  329. XM<F5E;B!O;B!C97)T86EN"B`@("`@;W1H97(@97)R;W)S+"!S=6-H(&%S('1YV
  330. XM<&EN9R!A;B!I;G9A;&ED(&-H87)A8W1E<BX@(%1H90H@("`@("U1(&]P=&EOS
  331. XM;B!T96QL<R!?"&Q?"&5?"'-?"',@=&\@8F4@<75I970@86QL('1H92!T:6UE@
  332. XM.R!T:&%T(&ES+`H@("`@(&YE=F5R("!D;R!T:&4@=FES=6%L(&)E;&PN"@HM4
  333. XM<R`@(#(M=V%Y('-W:71C:`H@("`@(%1H92`M<R!O<'1I;VX@8V%U<V5S("!C`
  334. XM;VYS96-U=&EV92`@8FQA;FL@(&QI;F5S("!T;R`@8F4*("`@("!S<75E97IE^
  335. XM9"!I;G1O(&$@<VEN9VQE(&)L86YK(&QI;F4N("!4:&ES(&ES('5S969U;"!W>
  336. XM:&5N"B`@("`@=FEE=VEN9R!?"&Y?"')?"&]?"&9?"&8@;W5T<'5T+@H*+70@P
  337. XM("`R+7=A>2!S=VET8V@*("`@("!.;W)M86QL>2P@9F]R=V%R9"!S96%R8VAE6
  338. XM<R!S=&%R="`@:G5S="`@869T97(@('1H92`@=&]P"B`@("`@9&ES<&QA>65D6
  339. XM(&QI;F4@*'1H870@:7,L(&%T('1H92!S96-O;F0@9&ES<&QA>65D(&QI;F4IK
  340. XM+@H@("`@(%1H=7,@9F]R=V%R9"!S96%R8VAE<R!I;F-L=61E('1H92`@8W5RN
  341. XM<F5N=&QY("!D:7-P;&%Y960*("`@("!S8W)E96XN("!4:&4@+70@;W!T:6]N0
  342. XM(&-A=7-E<R!F;W)W87)D('-E87)C:&5S('1O('-T87)T"B`@("`@:G5S="!AI
  343. XM9G1E<B!T:&4@8F]T=&]M(&QI;F4@9&ES<&QA>65D+"!T:'5S('-K:7!P:6YG#
  344. XM('1H90H@("`@(&-U<G)E;G1L>2!D:7-P;&%Y960@<V-R965N+@H*+74@86YDI
  345. XM("U5("`S+7=A>2!S=VET8V@*("`@("!)9B!T:&4@+74@;W!T:6]N(&ES(&=IF
  346. XM=F5N+"!B86-K<W!A8V5S("!A<F4@('1R96%T960@(&%S"B`@("`@<')I;G1A2
  347. XM8FQE("!C:&%R86-T97)S.R`@=&AA="`@:7,L("!T:&5Y(&%R92!S96YT('1OV
  348. XM('1H90H@("`@('1E<FUI;F%L('=H96X@=&AE>2!A<'!E87(@:6X@=&AE(&EN[
  349. XM<'5T+@H@("`@($EF('1H92`M52!O<'1I;VX@:7,@9VEV96XL(&)A8VMS<&%C5
  350. XM97,@(&%R92`@<')I;G1E9"`@87,*("`@("!T:&4@='=O(&-H87)A8W1E<B!S?
  351. XM97%U96YC92`B7D@B+@H@("`@($EF(&YE:71H97(@+74@;F]R("U5(&ES(&=I%
  352. XM=F5N+"!B86-K<W!A8V5S('=H:6-H("!A<'!E87(*("`@("!A9&IA8V5N="`@U
  353. XM=&\@(&%N("!U;F1E<G-C;W)E(&-H87)A8W1E<B!A<F4@=')E871E9"!S<&4MO
  354. XM"B`@("`@8VEA;&QY.B!T:&4@=6YD97)L:6YE9"`@=&5X="`@:7,@(&1I<W!L*
  355. XM87EE9"`@=7-I;F<@('1H90H@("`@('1E<FUI;F%L)W,@("!H87)D=V%R92`@8
  356. XM=6YD97)L:6YI;F<@(&-A<&%B:6QI='DN("`@06QS;RP*("`@("!B86-K<W!A)
  357. XM8V5S('=H:6-H(&%P<&5A<B!B971W965N('1W;R`@:61E;G1I8V%L("!C:&%R6
  358. XM86,M"B`@("`@=&5R<R`@87)E("!T<F5A=&5D("!S<&5C:6%L;'DZ("!T:&4@;
  359. XM(&]V97)S=')U8VL@=&5X="!I<PH@("`@('!R:6YT960@=7-I;F<@=&AE('1E9
  360. XM<FUI;F%L)W,@:&%R9'=A<F4@8F]L9&9A8V4@8V%P86)I;"T*("`@("!I='DNB
  361. XM("`@3W1H97(@(&)A8VMS<&%C97,@(&%R92`@9&5L971E9"P@(&%L;VYG('=I^
  362. XM=&@@=&AE"B`@("`@<')E8V5E9&EN9R!C:&%R86-T97(N("!4:&ES(&ES('1H(
  363. XM92!D969A=6QT('-E='1I;F<N"B`@("`@5&AE(')E8V]G;FET:6]N(&]F($%.F
  364. XM4TD@97-C87!E('-E<75E;F-E<R!I<R!A;'-O(&-O;G1R;VQL960*("`@("!B&
  365. XM>2!T:&ES('-W:71C:"X@(%1H92!!3E-)('5N9&5R;&EN:6YG+"!B;VQD9F%CS
  366. XM92P@:71A;&EC+`H@("`@(&%N9"!I;G9E<G-E(')E;F1E<FEN9R!I<R!O;FQY(
  367. XM(&1O;F4@:68@;F5I=&AE<B`M=2!N;W(@+54*("`@("!I<R!S970N"@HM=R`@O
  368. XM(#(M=V%Y('-W:71C:`H@("`@($YO<FUA;&QY+"!?"&Q?"&5?"'-?"',@=7-E&
  369. XM<R`@82`@=&EL9&4@(&-H87)A8W1E<B`@=&\@(')E<')E<V5N=`H@("`@(&QI-
  370. XM;F5S("!P87-T("!T:&4@96YD(&]F('1H92!F:6QE+B`@5&AE("UW(&]P=&EO*
  371. XM;B!C875S97,*("`@("!B;&%N:R!L:6YE<R!T;R!B92!U<V5D(&EN<W1E860NP
  372. XM"@HM>"`@($YU;65R:6,*("`@("!4:&4@+7A?"&X@;W!T:6]N('-E=',@=&%B`
  373. XM('-T;W!S(&5V97)Y(%\(;B`@<&]S:71I;VYS+B`@(%1H90H@("`@(&1E9F%U?
  374. XM;'0@9F]R(%\(;B!I<R`X+@H*+5MZ72!.=6UE<FEC"B`@("`@5VAE;B!G:79EK
  375. XM;B!A(&)A8VMW87)D<R!O<B!F;W)W87)D<R!W:6YD;W<@8V]M;6%N9"P@7PAL@
  376. XM7PAE7PAS7PAS"B`@("`@=VEL;"`@8GD@(&1E9F%U;'0@('-C<F]L;"`@8F%C7
  377. XM:W=A<F1S("!O<B`@9F]R=V%R9',@(&]N90H@("`@('-C<F5E;F9U;"!O9B!L)
  378. XM:6YE<RX@5&AE("UZ7PAN(&]P=&EO;B!C:&%N9V5S('1H92`@9&5F875L=`H@<
  379. XM("`@('-C<F]L;&EN9R!W:6YD;W<@<VEZ92!T;R!?"&X@;&EN97,L(&]R(&]N]
  380. XM92`@<V-R965N9G5L+`H@("`@('=H:6-H979E<B!I<R!S;6%L;&5R+B`@3F]TR
  381. XM92`@=&AA="!T:&4@(GHB(&ES(&]P=&EO;F%L(&9O<@H@("`@(&-O;7!A=&EBW
  382. XM:6QI='D@=VET:"!?"&U?"&]?"')?"&4N("!)9B!T:&4@<V-R965N(&ES(')E'
  383. XM<VEZ960*("`@("!S;R!T:&%T('1H92`M>B!O<'1I;VX@=V]U;&0@8F4@;&%RN
  384. XM9V5R('1H86X@82!S8W)E96YF=6PL"B`@("`@+7H@:7,@<F5S970@=&\@=&AI5
  385. XM<R!S;6%L;&5R('-C<F5E;B!S:7IE+B`@268@=&AE('-C<F5E;@H@("`@(&ESB
  386. XM('1H96X@96YL87)G960@=&\@82!S:7IE(&=R96%T97(@=&AA;B`M>BP@=&AEY
  387. XM('!R979I;W5S;'D*("`@("!S<&5C:69I960@=F%L=64@:7,@<F5S=&]R960N'
  388. XM"@HK("`@(%-T<FEN9PH@("`@($EF(&$@8V]M;6%N9"!L:6YE(&]P=&EO;B!B2
  389. XM96=I;G,@=VET:"`K+"`@=&AE("!R96UA:6YD97(*("`@("!O9B`@=&AA="`@1
  390. XM;W!T:6]N("!I<R`@=&%K96X@=&\@8F4@86X@:6YI=&EA;"!C;VUM86YD('1OM
  391. XM"B`@("`@7PAL7PAE7PAS7PAS+B`@1F]R(&5X86UP;&4L("M'('1E;&QS(%\(G
  392. XM;%\(95\(<U\(<R!T;R!S=&%R="!A="`@=&AE("!E;F0*("`@("!O9B`@=&AEJ
  393. XM(&9I;&4@<F%T:&5R('1H86X@=&AE(&)E9VEN;FEN9RP@86YD("LO>'EZ('1E`
  394. XM;&QS"B`@("`@:70@=&\@<W1A<G0@870@=&AE(&9I<G-T("!O8V-U<F5N8V4@8
  395. XM(&]F("`B>'EZ(B`@:6X@('1H90H@("`@(&9I;&4N("`@($%S("`@82`@('-PL
  396. XM96-I86P@(&-A<V4L("`K/&YU;6)E<CX@(&%C=',@(&QI:V4*("`@("`K/&YUX
  397. XM;6)E<CYG.R!T:&%T(&ES+"`@:70@('-T87)T<R`@=&AE("!D:7-P;&%Y("!A5
  398. XM="`@=&AE"B`@("`@<W!E8VEF:65D("!L:6YE("!N=6UB97(@("AH;W=E=F5RD
  399. XM+"!S964@=&AE(&-A=F5A="!U;F1E<@H@("`@('1H92`B9R(@8V]M;6%N9"!AR
  400. XM8F]V92DN("!)9B!T:&4@;W!T:6]N('-T87)T<R!W:71H("`K*RP*("`@("!T)
  401. XM:&4@:6YI=&EA;"!C;VUM86YD(&%P<&QI97,@=&\@979E<GD@9FEL92!B96ENP
  402. XM9R!V:65W960L"B`@("`@;F]T(&IU<W0@=&AE(&9I<G-T(&]N92X@(%1H92`K]
  403. XM(&-O;6UA;F0@9&5S8W)I8F5D('!R979I+0H@("`@(&]U<VQY("!M87D@(&%LQ
  404. XM<V\@(&)E('5S960@=&\@<V5T("AO<B!C:&%N9V4I(&%N(&EN:71I86P*("`@D
  405. XM("!C;VUM86YD(&9O<B!E=F5R>2!F:6QE+@H*+5M.+$XL3BQ.70H@("`@($EF-
  406. XM(&%N(&]P=&EO;B!O9B!T:&ES(&9O<FT@87!P96%R<R!O;B!T:&4@8V]M;6%N.
  407. XM9"!L:6YE+`H@("`@($QE<W,@=7-E<R!T:&4@:6YF;W)M871I;VX@=&\@<VEZ9
  408. XM92!A;F0@<&]S:71I;VX@:71S(&1I<W!L87D*("`@("!W:6YD;W<N("!!;GD@+
  409. XM;V8@=&AE(&9O=7(@=F%L=65S(&UA>2!B92!O;6ET=&5D+"!D969A=6QT:6YG5
  410. XM"B`@("`@=&\@,"X@($EF(&]N92!O<B!M;W)E(&]F('1H92!L87-T('9A;'5E7
  411. XM<R!I<R!O;6ET=&5D+"!T:&4*("`@("!T<F%I;&EN9R!C;VUM87,@;6%Y(&)E$
  412. XM(&]M:71T960@86QS;RX@($$@=F%L=64@;V8@>F5R;R!I;@H@("`@(&5I=&AE6
  413. XM<B!O9B!T:&4@;&%S="!T=V\@<&]S:71I;VYS(&-A=7-E<R!,97-S('1O('5S$
  414. XM92!M87AI;75M"B`@("`@<V-R965N(&1I;65N<VEO;G,N("!4:&4@9F]U<B!V'
  415. XM86QU97,@:6YD:6-A=&4@:6X@;W)D97(@=&AE"B`@("`@;&5F="!E9&=E+"!T9
  416. XM;W`@961G92P@=VED=&@L(&%N9"!H96EG:'0@;V8@=VEN9&]W('1O('5S92X*M
  417. XM("`@("!)9B!A;GD@;V8@=&AE<V4@87)E(&YE9V%T:79E+"!T:&5Y(&%R92!TB
  418. XM86ME;B!A<R!R96QA=&EV90H@("`@('1O('1H92!B;W1T;VT@<FEG:'0@8V]R4
  419. XM;F5R(&]F('1H92!W;W)K8F5N8V@@<V-R965N+B`@5&AU<RP*("`@("`M6S`LJ
  420. XM,3(L+"TQ,#!=('=I;&P@;W!E;B!A(&9U;&PM=VED=&@@=VEN9&]W(&5X=&5N=
  421. XM9&EN9R!F<F]M"B`@("`@,3(@<&EX96QS(&9R;VT@=&AE('1O<"!T;R`Q,#`@T
  422. XM<&EX96QS(&9R;VT@=&AE(&)O='1O;2!O9@H@("`@('1H92!S8W)E96XN(%-I)
  423. XM;6EL87)L>2P@+5LM-#`P+#`L-#`P+#!=('=O=6QD(&]P96X@82!F=6QL+0H@L
  424. XM("`@(&AE:6=H="!W:6YD;W<@=VAI8V@@:7,@9FQU<V@@86=A:6YS="!T:&4@J
  425. XM<FEG:'0@961G92!O9B!T:&4*("`@("!S8W)E96X@86YD(#0P,"!P:7AE;',@O
  426. XM=VED92X@($EF('1H92!W:6YD;W<@<W!E8VEF:65D('=O=6QD"B`@("`@9F%L3
  427. XM;"!O9F8@86X@961G92!O9B!T:&4@<V-R965N+"!O<B!W;W5L9"!G;R!L97-SF
  428. XM('1H86X@80H@("`@(&-E<G1A:6X@;6EN:6UU;2!S:7IE+"!T:&4@=VEN9&]W8
  429. XM(&ES('-I;&5N=&QY(&-O97)C960@8F%C:PH@("`@(&EN=&\@8V]N9F]R;6ET+
  430. XM>2X*"E\(4E\(95\(9U\(=5\(;%\(85\(<B!?"$5?"'A?"'!?"')?"&5?"'-?^
  431. XM"'-?"&E?"&]?"&X@7PA07PAA7PAT7PAT7PAE7PAR7PAN(%\(35\(85\(=%\(C
  432. XM8U\(:%\(:5\(;E\(9PH*3&5S<R!U<V5S(%)E9W5L87(@17AP<F5S<VEO;G,L1
  433. XM(&EN('1H92!S='EL92!O9B!5;FEX("=E9"<L(&9O<@IS<&5C:69Y:6YG('-E?
  434. XM87)C:&5S+B`@5VAI;&4@=&AE<V4@97AP<F5S<VEO;G,@8V%N(&%P<&5A<B!QU
  435. XM=6ET90IC<GEP=&EC+"!T:&5Y(&%R92!V97)Y('!O=V5R9G5L('1O;VQS(&9O=
  436. XM<B!L;V-A=&EN9R!T97AT('=I=&AI;@IA(&1O8W5M96YT+@H*06YY('!A='1E-
  437. XM<FX@8V]N<VES=&EN9R!O;FQY(&]F(&QE='1E<G,L(&YU;6)E<G,L(&%N9"!S5
  438. XM<&%C97,@=VEL;`IS:6UP;'D@<V5A<F-H(&9O<B!T:&4@9VEV96X@<&%T=&5R3
  439. XM;BX@($)U="!Y;W4@8V%N('5S92!O;F4@;W(*;6]R92!O9B!T:&4@;65T86-H+
  440. XM87)A8W1E<G,@6UTN7B0H*7PJ*R!T;R!E;F=I;F5E<B!V97)Y"G-O<&AI<W1I2
  441. XM8V%T960@<V5A<F-H97,N("!4:&4@)RXG('-T86YD<R!F;W(@86YY('-I;F=L3
  442. XM92!C:&%R86-T97(L"F%N9"`G>"HG('-T86YD<R!F;W(@,"!O<B!M;W)E(&]C5
  443. XM8W5R86YC97,@;V8@>"`H<V\@)W@N*GDG('=O=6QD"FUA=&-H(&%N>71H:6YGF
  444. XM('1H870@<W1A<G1E9"!W:71H('@@86YD(&5N9&5D('=I=&@@>2DN("`G>"LG,
  445. XM"G=O<FMS('1H92!S86UE('=A>2P@9F]R(#$@;W(@;6]R92!O8V-U<F%N8V5S6
  446. XM(&]F('@N("`G>#\G(&UA=&-H97,*,"!O<B`Q(&]C8W5R86YC97,@;V8@>"`HL
  447. XM:2YE+B`G>"<@;W(@;F]T:&EN9RDN("`G6V%B8UTG(&UA=&-H97,*86YY('-I^
  448. XM;F=L92!O8V-U<F%N8V4@;V8@)V$G+"`G8B<L(&]R("=C)RX@("=;7F%B8UTGO
  449. XM(&UA=&-H97,@86YY"G-I;F=L92!C:&%R86-T97(@97AC97!T("=A)RP@)V(GZ
  450. XM+"!O<B`G8R<N("`G6V$M;5TG(&UA=&-H97,@86YY"G-I;F=L92!C:&%R86-T<
  451. XM97(@:6X@=&AE(')A;F=E("=A)R!T:')O=6=H("=M)R!I;F-L=7-I=F4N("`GN
  452. XM7G@G"F9I;F1S('@@;VYL>2!A="!T:&4@8F5G:6YN:6YG(&]F(&$@;&EN93L@5
  453. XM)W@D)R!O;FQY(&%T('1H92!E;F0@;V8*82!L:6YE+B`@)WA\>2<@;6%T8VAE<
  454. XM<R!E:71H97(@>"!O<B!Y+B`@5&AE('9A<FEO=7,@<&EE8V5S(&-A;B!B90IC]
  455. XM;VUB:6YE9"P@;V8@8V]U<G-E+"!A;F0@9W)O=7!E9"!W:71H('!A<F5N=&AE8
  456. XM<V5S+B`@1F]R(&EN<W1A;F-E+`HG*%M!85UN>7Q;165=86-H*2`K;V8@>6]UK
  457. XM)R!W;W5L9"!F:6YD(&%N>2!P:')A<V4@8F5G:6YN:6YG('=I=&@*)V%N>2<@K
  458. XM;W(@)V5A8V@G("AP;W-S:6)L>2!C87!I=&%L:7IE9"D@9F]L;&]W960@8GD@'
  459. XM;VYE(&]R(&UO<F4*8FQA;FMS+"!F;VQL;W=E9"!B>2`G;V8@>6]U)RX@)R`H[
  460. XM8V%N*3]N;W0@)R!M871C:&5S(&5I=&AE<B`G;F]T)PIO<B`G8V%N;F]T)RP@_
  461. XM8G5T(&YO="`G;F]T:&EN9R<@;W(@)V-A;F-E;"<N("`G6UYA+7I!+5I=:5M>3
  462. XM82UZ02U:72<*9FEN9',@86QL(&]C8W5R86YC97,@;V8@82!V87)I86)L92`GT
  463. XM:2<@:6X@82!P<F]G<F%M+"!B=70@9&]E<R!N;W0*9FEN9"`G:2<@96UB961DV
  464. XM960@:6X@;W1H97(@=F%R:6%B;&4@;F%M97,@;W(@=V]R9',N("!4;R!M871CB
  465. XM:"!A"FUE=&%C:&%R86-T97(@;&ET97)A;&QY+"!P<F5C961E(&ET('=I=&@@6
  466. XM82!B86-K<VQA<V@[(&4N9RX@)UPN("!<*B<*=V]U;&0@;6%T8V@@82!P97)IA
  467. XM;V0@9F]L;&]W960@8GD@='=O('-P86-E<R!A;F0@86X@87-T97)I<VLN"@H*W
  468. XM7PA/7PAT7PAH7PAE7PAR(%\(0U\(;U\(;E\(<U\(:5\(9%\(95\(<E\(85\(#
  469. XM=%\(:5\(;U\(;E\(<PH*3&5S<R!I<R!R97-I9&5N=&%B;&4L('-O(&EF('EOG
  470. XM=2!U<V4@:70@82!L;W0@>6]U(&UA>2!W:7-H('1O(&%D9`II="!T;R!Y;W5RS
  471. XM('-Y<W1E;2!R97-I9&5N="!L:7-T+B`@5&\@9&\@=&AI<RP@;6%K92!S=7)ED
  472. XM('1H92!P=7)E"F)I="!I<R!S970@:6X@=&AE(&9I;&4@<')O=&5C=&EO;B!CP
  473. XM;V1E<R`H<')O=&5C="`K<"!,97-S*2X@(%1H96X*861D('1H92!L:6YE(")R<
  474. XM97-I9&5N="!C.DQE<W,B("AO<B!W:&%T979E<B!Y;W5R('!A=&@@:7,I('1OU
  475. XM('EO=7(*<W1A<G1U<"US97%U96YC92X*"DQE<W,@=7-E<R!I;G1E<FYA;&QYM
  476. XM($%S8VEI(&-H87)A8W1E<G,@,"!A;F0@,3(Y+3$S-BX@(%-I;F-E('1H97-E(
  477. XM"F%R92!N;VXM<')I;G1I;F<@8VAA<F%C=&5R<RP@:70@<VAO=6QD;B=T(&UA4
  478. XM:V4@86YY(&1I9F9E<F5N8V4*=6YD97(@;F]R;6%L(&-I<F-U;7-T86YC97,NV
  479. XM("!#:&%R86-T97(@,"!W:6QL(&1I<W!L87D@87,@)T`G(&%N9`HQ,CDM,3,VM
  480. XM(&%S(%X_+@H*"E\(5U\(:%\(95\(;B!?"'5?"'-?"&5?"&0@7PAO7PAN(%\(J
  481. XM<U\(=%\(85\(;E\(9%\(85\(<E\(9"!?"&E?"&Y?"'!?"'5?"'0@*%\(<E\(]
  482. XM85\(=%\(:%\(95\(<B!?"'1?"&A?"&%?"&X@7PAA("!?"&9?"&E?"&Q?"&4ID
  483. XM+"`@7PAY7PAO7PAU("!?"&-?"&%?"&X*7PAM7PAO7PAV7PAE("!?"&)?"&%?R
  484. XM"&-?"&M?"'=?"&%?"')?"&1?"',@(%\(;U\(;E\(;%\(>2!?"&$@7PAF7PAID
  485. XM7PAN7PAI7PAT7PAE(%\(85\(;5\(;U\(=5\(;E\(="P@7PAC7PAO7PAR7PAR(
  486. XM7PAE7PAS7PAP7PAO7PAN7PAD7PAI7PAN7PAG(%\(=%\(;R!?"'1?"&A?"&%?H
  487. XM"'0*7PAP7PAO7PAR7PAT7PAI7PAO7PAN(%\(;U\(9B!?"'1?"&A?"&4@7PAFH
  488. XM7PAI7PAL7PAE(%\(=U\(:%\(:5\(8U\(:"!?"&E?"',@7PAS7PAT7PAI7PALG
  489. XM7PAL(%\(8E\(=5\(9E\(9E\(95\(<E\(95\(9"X@(%\(5%\(:%\(92`M7PAB(
  490. XM("!?"&]?"'!?"'1?"&E?"&]?"&X*7PAM7PAA7PAY(%\(8E\(92!?"'5?"'-?S
  491. XM"&5?"&0@7PAT7PAO(%\(95\(>%\(<%\(85\(;E\(9"!?"'1?"&A?"&4@7PAB2
  492. XB7PAU7PAF7PAF7PAE7PAR(%\(<U\(<%\(85\(8U\(92X*"G1??
  493. X``
  494. Xend
  495. Xsize 20689
  496. END_OF_FILE
  497. if test 29005 -ne `wc -c <'Less1.4Z/Less.doc.uu'`; then
  498.     echo shar: \"'Less1.4Z/Less.doc.uu'\" unpacked with wrong size!
  499. fi
  500. # end of 'Less1.4Z/Less.doc.uu'
  501. fi
  502. if test -f 'Less1.4Z/src/command.c' -a "${1}" != "-c" ; then 
  503.   echo shar: Will not clobber existing file \"'Less1.4Z/src/command.c'\"
  504. else
  505. echo shar: Extracting \"'Less1.4Z/src/command.c'\" \(25166 characters\)
  506. sed "s/^X//" >'Less1.4Z/src/command.c' <<'END_OF_FILE'
  507. X/*
  508. X * User-level command processor.
  509. X */
  510. X
  511. X#ifdef AMIGA
  512. X/* Compile with -HPreHeader.q to get "less.h"! */
  513. X#else
  514. X#include "less.h"
  515. X#endif
  516. X
  517. X#include "position.h"
  518. X#include <setjmp.h>
  519. X
  520. Xextern jmp_buf main_loop;
  521. Xextern int erase_char, kill_char;
  522. Xextern int pr_type;
  523. Xextern int sigs;
  524. Xextern int ispipe;
  525. Xextern int quit_at_eof;
  526. Xextern int hit_eof;
  527. Xextern int sc_width, sc_height;
  528. Xextern int sc_window;
  529. Xextern char *first_cmd;
  530. Xextern char *every_first_cmd;
  531. Xextern char version[];
  532. Xextern char current_file[];
  533. Xextern char *editor;
  534. X
  535. X#ifdef AMIGA
  536. Xextern int scroll;
  537. Xextern curr_ac, ac;             /* local argc for file names */
  538. Xextern char **av;
  539. Xint user_errors = 0;
  540. X#endif
  541. X
  542. Xstatic char cmdbuf[90];         /* Buffer for holding a multi-char command */
  543. X#if SHELL_ESCAPE
  544. Xstatic char shellcmd[200];      /* For holding last shell command for "!!" */
  545. X#endif
  546. Xstatic char *cp;                /* Pointer into cmdbuf */
  547. Xstatic int cmd_col;             /* Current column of the multi-char command */
  548. Xstatic char mcc;                /* The multi-char command letter (e.g. '/') */
  549. Xstatic char last_mcc;           /* The previous mcc */
  550. X#ifdef AMIGA
  551. Xint screen_trashed;             /* The screen has been overwritten */
  552. X#else
  553. Xstatic int screen_trashed;      /* The screen has been overwritten */
  554. X#endif
  555. X
  556. X/* Prototypes for functions defined in command.c */
  557. X
  558. Xstatic int cmd_erase __PROTO((void));
  559. Xstatic int cmd_char __PROTO((int c));
  560. Xstatic int cmd_int __PROTO((void));
  561. Xstatic void cmd_exec __PROTO((void));
  562. Xstatic void prompt __PROTO((void));
  563. Xstatic int getcc __PROTO((void));
  564. X
  565. X
  566. X/*
  567. X * Reset command buffer (to empty).
  568. X */
  569. X#ifdef __STDC__
  570. Xvoid cmd_reset (void)
  571. X#else
  572. Xcmd_reset()
  573. X#endif
  574. X{
  575. X        cp = cmdbuf;
  576. X}
  577. X
  578. X/*
  579. X * Backspace in command buffer.
  580. X */
  581. X#ifdef __STDC__
  582. Xstatic int cmd_erase (void)
  583. X#else
  584. X        static int
  585. Xcmd_erase()
  586. X#endif
  587. X{
  588. X        if (cp == cmdbuf)
  589. X                /*
  590. X                 * Backspace past beginning of the string:
  591. X                 * this usually means abort the command.
  592. X                 */
  593. X                return (1);
  594. X
  595. X        if (control_char(*--cp))
  596. X        {
  597. X                /*
  598. X                 * Erase an extra character, for the carat.
  599. X                 */
  600. X                backspace();
  601. X                cmd_col--;
  602. X        }
  603. X        backspace();
  604. X        cmd_col--;
  605. X        return (0);
  606. X}
  607. X
  608. X/*
  609. X * Set up the display to start a new multi-character command.
  610. X */
  611. X#ifdef __STDC__
  612. Xvoid start_mcc (int c)
  613. X#else
  614. Xstart_mcc(c)
  615. X        int c;
  616. X#endif
  617. X{
  618. X        mcc = c;
  619. X        lower_left();
  620. X        clear_eol();
  621. X        putchr(mcc);
  622. X        cmd_col = 1;
  623. X}
  624. X
  625. X/*
  626. X * Process a single character of a multi-character command, such as
  627. X * a number, or the pattern of a search command.
  628. X */
  629. X#ifdef __STDC__
  630. Xstatic int cmd_char (int c)
  631. X#else
  632. X        static int
  633. Xcmd_char(c)
  634. X        int c;
  635. X#endif
  636. X{
  637. X        if (c == erase_char)
  638. X        {
  639. X                if (cmd_erase())
  640. X                        return (1);
  641. X        } else if (c == kill_char)
  642. X        {
  643. X                /* {{ Could do this faster, but who cares? }} */
  644. X                while (cmd_erase() == 0)
  645. X                        ;
  646. X        } else
  647. X        {
  648. X                /*
  649. X                 * Append the character to the string,
  650. X                 * if there is room in the buffer and on the screen.
  651. X                 */
  652. X                if (cp < &cmdbuf[sizeof(cmdbuf)-1] && cmd_col < sc_width-3)
  653. X                {
  654. X                        *cp++ = c;
  655. X                        if (control_char(c))
  656. X                        {
  657. X                                putchr('^');
  658. X                                cmd_col++;
  659. X                                c = carat_char(c);
  660. X                        }
  661. X                        putchr(c);
  662. X                        cmd_col++;
  663. X                } else
  664. X                        bell();
  665. X        }
  666. X        return (0);
  667. X}
  668. X
  669. X/*
  670. X * Return the number currently in the command buffer.
  671. X */
  672. X#ifdef __STDC__
  673. Xstatic int cmd_int (void)
  674. X#else
  675. X        static int
  676. Xcmd_int()
  677. X#endif
  678. X{
  679. X        *cp = '\0';
  680. X        cp = cmdbuf;
  681. X        return (atoi(cmdbuf));
  682. X}
  683. X
  684. X/*
  685. X * Move the cursor to lower left before executing a command.
  686. X * This looks nicer if the command takes a long time before
  687. X * updating the screen.
  688. X */
  689. X#ifdef __STDC__
  690. Xstatic void cmd_exec (void)
  691. X#else
  692. X        static void
  693. Xcmd_exec()
  694. X#endif
  695. X{
  696. X        lower_left();
  697. X        flush();
  698. X}
  699. X
  700. X/*
  701. X * Display the appropriate prompt.
  702. X */
  703. X#ifdef __STDC__
  704. Xstatic void prompt (void)
  705. X#else
  706. X        static void
  707. Xprompt()
  708. X#endif
  709. X{
  710. X        register char *p;
  711. X
  712. X        if (first_cmd != NULL && *first_cmd != '\0')
  713. X                /*
  714. X                 * No prompt necessary if commands are from first_cmd
  715. X                 * rather than from the user.
  716. X                 */
  717. X                return;
  718. X
  719. X        /*
  720. X         * If nothing is displayed yet, display starting from line 1.
  721. X         */
  722. X        if (position(TOP) == NULL_POSITION)
  723. X                jump_back(1);
  724. X        else if (screen_trashed)
  725. X                repaint();
  726. X        screen_trashed = 0;
  727. X
  728. X        /*
  729. X         * Select the proper prompt and display it.
  730. X         */
  731. X        lower_left();
  732. X        clear_eol();
  733. X        p = pr_string();
  734. X        if (p == NULL)
  735. X                putchr(':');
  736. X        else
  737. X        {
  738. X#ifdef AMIGA
  739. X                if ( strlen(p) > sc_width )
  740. X                    screen_trashed = 1;
  741. X#endif
  742. X                so_enter();
  743. X                putstr(p);
  744. X                so_exit();
  745. X        }
  746. X}
  747. X
  748. X/*
  749. X * Get command character.
  750. X * The character normally comes from the keyboard,
  751. X * but may come from the "first_cmd" string.
  752. X */
  753. X#ifdef __STDC__
  754. Xstatic int getcc (void)
  755. X#else
  756. X        static int
  757. Xgetcc()
  758. X#endif
  759. X{
  760. X        if (first_cmd == NULL)
  761. X                return (getchr());
  762. X
  763. X        if (*first_cmd == '\0')
  764. X        {
  765. X                /*
  766. X                 * Reached end of first_cmd input.
  767. X                 */
  768. X                first_cmd = NULL;
  769. X                if (cp > cmdbuf && position(TOP) == NULL_POSITION)
  770. X                {
  771. X                        /*
  772. X                         * Command is incomplete, so try to complete it.
  773. X                         * There are only two cases:
  774. X                         * 1. We have "/string" but no newline.  Add the \n.
  775. X                         * 2. We have a number but no command.  Treat as #g.
  776. X                         * (This is all pretty hokey.)
  777. X                         */
  778. X                        if (mcc != ':')
  779. X                                /* Not a number; must be search string */
  780. X                                return ('\n');
  781. X                        else
  782. X                                /* A number; append a 'g' */
  783. X                                return ('g');
  784. X                }
  785. X                return (getchr());
  786. X        }
  787. X        return (int)(*first_cmd++);
  788. X}
  789. X
  790. X/*
  791. X * Main command processor.
  792. X * Accept and execute commands until a quit command, then return.
  793. X */
  794. X#ifdef __STDC__
  795. Xvoid commands (void)
  796. X#else
  797. X        public void
  798. Xcommands()
  799. X#endif
  800. X{
  801. X        register int c;
  802. X        register int n;
  803. X#ifndef AMIGA
  804. X        register int scroll = 10;
  805. X#endif
  806. X
  807. X        last_mcc = 0;
  808. X        n = 0;
  809. X        setjmp(main_loop);
  810. X        mcc = 0;
  811. X
  812. X        for (;;)
  813. X        {
  814. X                /*
  815. X                 * Display prompt and accept a character.
  816. X                 */
  817. X                psignals();     /* See if any signals need processing */
  818. X
  819. X#ifdef AMIGA
  820. X                if (quit_at_eof == 2 && hit_eof > 1)
  821. X#else
  822. X                if (quit_at_eof && (quit_at_eof + hit_eof) > 2)
  823. X#endif
  824. X                        /*
  825. X                         * After hitting end-of-file for the second time,
  826. X                         * automatically advance to the next file.
  827. X                         * If there are no more files, quit.
  828. X                         */
  829. X                        next_file(1);
  830. X                cmd_reset();
  831. X                prompt();
  832. X                c = getcc();
  833. X
  834. X        again:
  835. X                if (sigs)
  836. X                        continue;
  837. X                if (mcc)
  838. X                {
  839. X                        /*
  840. X                         * We are in a multi-character command.
  841. X                         * All chars until newline go into the command buffer.
  842. X                         * (Note that mcc == ':' is a special case that
  843. X                         *  means a number is being entered.)
  844. X                         */
  845. X                        if (mcc != ':' && (c == '\n' || c == '\r'))
  846. X                        {
  847. X                                char *p;
  848. X                                static char fcbuf[100];
  849. X
  850. X                                /*
  851. X                                 * Execute the command.
  852. X                                 */
  853. X                                *cp = '\0';
  854. X                                cmd_exec();
  855. X                                switch (mcc)
  856. X                                {
  857. X                                case '/': case '?':
  858. X                                        search(mcc, cmdbuf, n);
  859. X                                        break;
  860. X                                case '+':
  861. X                                        for (p = cmdbuf;  *p == '+' || *p == ' ';  p++) ;
  862. X                                        if (*p == '\0')
  863. X                                                every_first_cmd = NULL;
  864. X                                        else
  865. X                                        {
  866. X                                                strtcpy(fcbuf, p, sizeof(fcbuf));
  867. X                                                every_first_cmd = fcbuf;
  868. X                                        }
  869. X                                        break;
  870. X                                case '-':
  871. X                                        toggle_option(cmdbuf);
  872. X                                        break;
  873. X                                case 'E':
  874. X                                        /*
  875. X                                         * Ignore leading spaces
  876. X                                         * in the filename.
  877. X                                         */
  878. X                                        for (p = cmdbuf;  *p == ' ';  p++) ;
  879. X                                        edit(glob(p));
  880. X                                        break;
  881. X#if SHELL_ESCAPE
  882. X                                case '!':
  883. X                                        /*
  884. X                                         * !! just uses whatever is in shellcmd.
  885. X                                         * Otherwise, copy cmdbuf to shellcmd,
  886. X                                         * replacing any '%' with the current
  887. X                                         * file name.
  888. X                                         */
  889. X                                        if (*cmdbuf != '!')
  890. X                                        {
  891. X                                                register char *fr, *to;
  892. X                                                to = shellcmd;
  893. X                                                for (fr = cmdbuf;
  894. X                                                        *fr != '\0';  fr++)
  895. X                                                {
  896. X                                                        if (*fr != '%')
  897. X                                                                *to++ = *fr;
  898. X                                                        else
  899. X                                                        {
  900. X                                                                strcpy(to,
  901. X                                                                 current_file);
  902. X                                                                to += strlen(to);
  903. X                                                        }
  904. X                                                }
  905. X                                                *to = '\0';
  906. X                                        }
  907. X                                        lsystem(shellcmd);
  908. X                                        screen_trashed = 1;
  909. X                                        error("!done");
  910. X                                        break;
  911. X#endif
  912. X                                }
  913. X                                mcc = 0;
  914. X                        } else
  915. X                        {
  916. X                                if (mcc == ':' && (c < '0' || c > '9') &&
  917. X                                        c != erase_char && c != kill_char)
  918. X                                {
  919. X                                        /*
  920. X                                         * This is not part of the number
  921. X                                         * we were entering.  Process
  922. X                                         * it as a regular character.
  923. X                                         */
  924. X                                        mcc = 0;
  925. X                                        goto again;
  926. X                                }
  927. X
  928. X                                /*
  929. X                                 * Append the char to the command buffer.
  930. X                                 */
  931. X                                if (cmd_char(c))
  932. X                                {
  933. X                                        /* Abort the multi-char command. */
  934. X                                        mcc = 0;
  935. X                                        continue;
  936. X                                }
  937. X                                c = getcc();
  938. X                                goto again;
  939. X                        }
  940. X                } else switch (c)
  941. X                {
  942. X                case '0': case '1': case '2': case '3': case '4':
  943. X                case '5': case '6': case '7': case '8': case '9':
  944. X                        /*
  945. X                         * First digit of a number.
  946. X                         */
  947. X                        start_mcc(':');
  948. X                        goto again;
  949. X
  950. X                case 'f':
  951. X                case ' ':
  952. X                case CONTROL('F'):
  953. X#ifdef AMIGA
  954. X                case CONTROL('V'):
  955. X#endif
  956. X                        /*
  957. X                         * Forward one screen.
  958. X                         */
  959. X#ifdef AMIGA
  960. X                        if (hit_eof && quit_at_eof == 1)
  961. X                        {
  962. X                                if (curr_ac+1 == ac)
  963. X                                        return;
  964. X                                else
  965. X                                        next_file(1);
  966. X                        } else
  967. X#endif
  968. X                        {
  969. X                                n = cmd_int();
  970. X                                if (n <= 0)
  971. X                                        n = sc_window;
  972. X                                cmd_exec();
  973. X                                forward(n, 1);
  974. X                        }
  975. X                        break;
  976. X
  977. X                case 'b':
  978. X#ifdef AMIGA
  979. X                case 'B':
  980. X#endif
  981. X                case CONTROL('B'):
  982. X                        /*
  983. X                         * Backward one screen.
  984. X                         */
  985. X                        n = cmd_int();
  986. X                        if (n <= 0)
  987. X                                n = sc_window;
  988. X                        cmd_exec();
  989. X                        backward(n, 1);
  990. X                        break;
  991. X
  992. X                case 'e':
  993. X                case 'j':
  994. X                case '\r':
  995. X                case '\n':
  996. X                case CONTROL('E'):
  997. X#ifdef AMIGA
  998. X                case CONTROL('N'):
  999. X#endif
  1000. X                        /*
  1001. X                         * Forward N (default 1) line.
  1002. X                         */
  1003. X                        n = cmd_int();
  1004. X                        if (n <= 0)
  1005. X                                n = 1;
  1006. X                        cmd_exec();
  1007. X                        forward(n, 0);
  1008. X                        break;
  1009. X
  1010. X                case 'y':
  1011. X                case 'k':
  1012. X                case CONTROL('K'):
  1013. X                case CONTROL('Y'):
  1014. X#ifdef AMIGA
  1015. X                case '\b':
  1016. X                case CONTROL('P'):
  1017. X#endif
  1018. X                        /*
  1019. X                         * Backward N (default 1) line.
  1020. X                         */
  1021. X                        n = cmd_int();
  1022. X                        if (n <= 0)
  1023. X                                n = 1;
  1024. X                        cmd_exec();
  1025. X                        backward(n, 0);
  1026. X                        break;
  1027. X
  1028. X                case 'd':
  1029. X                case CONTROL('D'):
  1030. X                        /*
  1031. X                         * Forward N lines
  1032. X                         * (default same as last 'd' or 'u' command).
  1033. X                         */
  1034. X                        n = cmd_int();
  1035. X                        if (n > 0)
  1036. X                                scroll = n;
  1037. X                        cmd_exec();
  1038. X                        forward(scroll, 0);
  1039. X                        break;
  1040. X
  1041. X                case 'u':
  1042. X                case CONTROL('U'):
  1043. X                        /*
  1044. X                         * Backward N lines
  1045. X                         * (default same as last 'd' or 'u' command).
  1046. X                         */
  1047. X                        n = cmd_int();
  1048. X                        if (n > 0)
  1049. X                                scroll = n;
  1050. X                        cmd_exec();
  1051. X                        backward(scroll, 0);
  1052. X                        break;
  1053. X
  1054. X                case 'R':
  1055. X                        /*
  1056. X                         * Flush buffers, then repaint screen.
  1057. X                         * Don't flush the buffers on a pipe!
  1058. X                         */
  1059. X                        if (!ispipe)
  1060. X                                ch_init(0);
  1061. X                        /* Fall thru */
  1062. X                case 'r':
  1063. X                case CONTROL('R'):
  1064. X                case CONTROL('L'):
  1065. X                        /*
  1066. X                         * Repaint screen.
  1067. X                         */
  1068. X                        repaint();
  1069. X                        break;
  1070. X
  1071. X                case 'g':
  1072. X#ifdef AMIGA
  1073. X                case '<':
  1074. X#endif
  1075. X                        /*
  1076. X                         * Go to line N, default beginning of file.
  1077. X                         */
  1078. X                        n = cmd_int();
  1079. X                        if (n <= 0)
  1080. X                                n = 1;
  1081. X                        cmd_exec();
  1082. X                        jump_back(n);
  1083. X                        break;
  1084. X
  1085. X                case 'p':
  1086. X                case '%':
  1087. X                        /*
  1088. X                         * Go to a specified percentage into the file.
  1089. X                         */
  1090. X                        n = cmd_int();
  1091. X                        if (n < 0)
  1092. X                                n = 0;
  1093. X                        if (n > 100)
  1094. X                                n = 100;
  1095. X                        cmd_exec();
  1096. X                        jump_percent(n);
  1097. X                        break;
  1098. X
  1099. X                case 'G':
  1100. X#ifdef AMIGA
  1101. X                case '>':
  1102. X#endif
  1103. X                        /*
  1104. X                         * Go to line N, default end of file.
  1105. X                         */
  1106. X                        n = cmd_int();
  1107. X                        cmd_exec();
  1108. X                        if (n <= 0)
  1109. X                                jump_forw();
  1110. X                        else
  1111. X                                jump_back(n);
  1112. X                        break;
  1113. X
  1114. X                case '=':
  1115. X                case CONTROL('G'):
  1116. X                        /*
  1117. X                         * Print file name, etc.
  1118. X                         */
  1119. X                        error(eq_message());
  1120. X                        break;
  1121. X
  1122. X                case 'V':
  1123. X                        /*
  1124. X                         * Print version number, without the "@(#)".
  1125. X                         */
  1126. X                        error(version+4);
  1127. X                        break;
  1128. X
  1129. X                case 'q':
  1130. X#ifdef AMIGA
  1131. X                case 'Q':
  1132. X#endif
  1133. X                        /*
  1134. X                         * Exit.
  1135. X                         */
  1136. X                        /*setjmp(main_loop);*/
  1137. X                        quit();
  1138. X
  1139. X#ifdef AMIGA
  1140. X                case CONTROL('S'):
  1141. X                        c = '/';
  1142. X                        /* v v v  fall through  v v v */
  1143. X#endif
  1144. X                case '/':
  1145. X                case '?':
  1146. X                        /*
  1147. X                         * Search for a pattern.
  1148. X                         * Accept chars of the pattern until \n.
  1149. X                         */
  1150. X                        n = cmd_int();
  1151. X                        if (n <= 0)
  1152. X                                n = 1;
  1153. X                        start_mcc(c);
  1154. X                        last_mcc = c;
  1155. X                        c = getcc();
  1156. X                        goto again;
  1157. X
  1158. X                case 'n':
  1159. X                        /*
  1160. X                         * Repeat previous search.
  1161. X                         */
  1162. X                        n = cmd_int();
  1163. X                        if (n <= 0)
  1164. X                                n = 1;
  1165. X                        start_mcc(last_mcc);
  1166. X                        cmd_exec();
  1167. X                        search(mcc, (char *)NULL, n);
  1168. X                        mcc = 0;
  1169. X                        break;
  1170. X#ifdef AMIGA
  1171. X
  1172. X                /* I didn't want a separate help file because people might
  1173. X                        not donwload it and then where would we be */
  1174. X                case 'H':
  1175. X                case 'h':
  1176. X                        screen_trashed = 1;
  1177. X                        help();
  1178. X                        break;
  1179. X#else
  1180. X                case 'H':
  1181. X                        /*
  1182. X                         * Help.
  1183. X                         */
  1184. X                        lower_left();
  1185. X                        clear_eol();
  1186. X                        putstr("help");
  1187. X                        cmd_exec();
  1188. X                        help();
  1189. X                        screen_trashed = 1;
  1190. X                        break;
  1191. X#endif
  1192. X
  1193. X                case 'E':
  1194. X                        /*
  1195. X                         * Edit a new file.  Get the filename.
  1196. X                         */
  1197. X                        cmd_reset();
  1198. X                        start_mcc('E');
  1199. X                        putstr("xamine: ");     /* This looks nicer */
  1200. X                        cmd_col += 8;
  1201. X                        c = getcc();
  1202. X                        goto again;
  1203. X
  1204. X                case '!':
  1205. X#if SHELL_ESCAPE
  1206. X                        /*
  1207. X                         * Shell escape.
  1208. X                         */
  1209. X                        cmd_reset();
  1210. X                        start_mcc('!');
  1211. X                        c = getcc();
  1212. X                        goto again;
  1213. X#else
  1214. X                        error("Command not available");
  1215. X                        break;
  1216. X#endif
  1217. X
  1218. X                case 'v':
  1219. X#if EDITOR
  1220. X                        if (ispipe)
  1221. X                        {
  1222. X                                error("Cannot edit standard input");
  1223. X                                break;
  1224. X                        }
  1225. X                        sprintf(cmdbuf, "%s %s", editor, current_file);
  1226. X                        lsystem(cmdbuf);
  1227. X                        ch_init(0);
  1228. X                        screen_trashed = 1;
  1229. X                        break;
  1230. X#else
  1231. X                        error("Command not available");
  1232. X                        break;
  1233. X#endif
  1234. X
  1235. X                case 'N':
  1236. X                        /*
  1237. X                         * Examine next file.
  1238. X                         */
  1239. X                        n = cmd_int();
  1240. X                        if (n <= 0)
  1241. X                                n = 1;
  1242. X                        next_file(n);
  1243. X                        break;
  1244. X
  1245. X                case 'P':
  1246. X                        /*
  1247. X                         * Examine previous file.
  1248. X                         */
  1249. X                        n = cmd_int();
  1250. X                        if (n <= 0)
  1251. X                                n = 1;
  1252. X                        prev_file(n);
  1253. X                        break;
  1254. X
  1255. X                case '-':
  1256. X                        /*
  1257. X                         * Toggle a flag setting.
  1258. X                         */
  1259. X                        cmd_reset();
  1260. X                        start_mcc('-');
  1261. X                        c = getcc();
  1262. X                        goto again;
  1263. X
  1264. X                case '+':
  1265. X                        cmd_reset();
  1266. X                        start_mcc('+');
  1267. X                        c = getcc();
  1268. X                        goto again;
  1269. X
  1270. X                case 'm':
  1271. X                        /*
  1272. X                         * Set a mark.
  1273. X                         */
  1274. X                        lower_left();
  1275. X                        clear_eol();
  1276. X                        putstr("mark: ");
  1277. X                        c = getcc();
  1278. X                        if (c == erase_char || c == kill_char)
  1279. X                                break;
  1280. X                        setmark(c);
  1281. X                        break;
  1282. X
  1283. X                case '\'':
  1284. X                        /*
  1285. X                         * Go to a mark.
  1286. X                         */
  1287. X                        lower_left();
  1288. X                        clear_eol();
  1289. X                        putstr("goto mark: ");
  1290. X                        c = getcc();
  1291. X                        if (c == erase_char || c == kill_char)
  1292. X                                break;
  1293. X                        gomark(c);
  1294. X                        break;
  1295. X
  1296. X                default:
  1297. X#ifdef AMIGA
  1298. X                if (++user_errors > 2) {
  1299. X                   lower_left();
  1300. X                   clear_eol();
  1301. X                   so_enter();
  1302. X                   putchr(c);
  1303. X                   putstr(" is an Invalid Command, Type H for help, or Q to quit");
  1304. X                   so_exit();
  1305. X                   /* give him some time to read it, and three more trys */
  1306. X                   Delay(3 * 50L);
  1307. X                   user_errors = 0;
  1308. X                } else
  1309. X#endif
  1310. X                        bell();
  1311. X                        break;
  1312. X                }
  1313. X        }
  1314. X}
  1315. END_OF_FILE
  1316. if test 25166 -ne `wc -c <'Less1.4Z/src/command.c'`; then
  1317.     echo shar: \"'Less1.4Z/src/command.c'\" unpacked with wrong size!
  1318. fi
  1319. # end of 'Less1.4Z/src/command.c'
  1320. fi
  1321. echo shar: End of archive 5 \(of 7\).
  1322. cp /dev/null ark5isdone
  1323. MISSING=""
  1324. for I in 1 2 3 4 5 6 7 ; do
  1325.     if test ! -f ark${I}isdone ; then
  1326.     MISSING="${MISSING} ${I}"
  1327.     fi
  1328. done
  1329. if test "${MISSING}" = "" ; then
  1330.     echo You have unpacked all 7 archives.
  1331.     rm -f ark[1-9]isdone
  1332. else
  1333.     echo You still need to unpack the following archives:
  1334.     echo "        " ${MISSING}
  1335. fi
  1336. ##  End of shell archive.
  1337. exit 0
  1338. -- 
  1339. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  1340. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  1341. Post requests for sources, and general discussion to comp.sys.amiga.misc.
  1342.